package week10;

/**
 *
 * 541. 反转字符串 II
 * https://leetcode-cn.com/problems/reverse-string-ii/
 *
 * 执行结果：  通过  显示详情
 *
 * 添加备注
 * 执行用时：0 ms, 在所有 Java 提交中击败了100.00% 的用户
 * 内存消耗：38.6 MB, 在所有 Java 提交中击败了14.60% 的用户
 * 通过测试用例：60 / 60
 * 炫耀一下:
 *
 */
public class Week10ReverseStringII {

    public String reverseStr(String s, int k) {
        int length = s.length();
        char[] array = s.toCharArray();
        for(int size = 0; size < length; size += 2 * k) {
            reverse(array, size, Math.min(size + k, length) - 1);
        }

        return new String(array);
    }

    public void reverse(char[] array, int left, int right) {
        for(;left < right;) {
            char temp = array[left];
            array[left] = array[right];
            array[right] = temp;
            left++;
            right--;
        }
    }
}
